package tipos;

import java.util.LinkedList;
import java.util.List;

import clases.Casilla;

public class Camino {
	private List<Casilla> recorrido = new LinkedList<Casilla>();
	
	public Camino (List<Casilla> camino) {
		this.recorrido = camino;
	}

	public Camino() {}
	
	public Camino(Casilla c) {
		this.recorrido.add(c);
	}

	public void setRecorrido(List<Casilla> recorrido) {
		this.recorrido = recorrido;
	}

	public List<Casilla> getRecorrido() {
		return this.recorrido;
	}
	
	public Integer getLongitud () {
		return this.recorrido.size();
	}
	
	public boolean addCasilla (Casilla cas) {
		return this.recorrido.add(cas);
	}
	
	public void removeCasilla () {
		if ((this.recorrido.isEmpty()) || (this.recorrido == null))
			throw new NullPointerException();
		this.recorrido.remove(this.recorrido.size()-1);
	}
	
	public Casilla lastCasilla() {
		return this.recorrido.get(this.recorrido.size()-1);
	}
	
	public boolean containsCasilla (Casilla c) {
		return this.recorrido.contains(c);
	}
	
	public Casilla getPrincipio () {
		return this.recorrido.get(0);
	}
	
	public Casilla getFinal () {
		return this.recorrido.get(this.recorrido.size()-1);
	}
}